package timbap.visualizer.api.plugin.container;

/**
 * The <code>KeepAliveModeController</code> interface is the base
 * interface for mode controllers that automatically publish a
 * switch command to the next mode, if a keep alive signal
 * has expired. 
 *
 * @author  Andreas Pabst
 * @see     timbap.visualizer.api.plugin.container.ModeController
 */
public interface KeepAliveModeController extends ModeController {

    public void keepAlive();

    public boolean isKeepAliveAccepted();

    public boolean hasKeepAliveExpired();

    public float getKeepAliveExpirationAsFractional();

    public void keepAliveExpired();
    
}